#ifndef CHOOSEFRIENDDIALOG_H
#define CHOOSEFRIENDDIALOG_H

#include <QDialog>
#include <QWidget>
#include<QHBoxLayout>
#include<QCheckBox>
#include<QLabel>

//////////////////////////////////////////////////
////// 选择好友窗口的一个元素/好友项
//////////////////////////////////////////////////

class ChooseFriendDialog;

class ChooseFriendItem : public QWidget{
    Q_OBJECT
public:
    ChooseFriendItem(ChooseFriendDialog* owner,const QString& userId, const QIcon& avatar,const QString& name,bool checked);

    void paintEvent(QPaintEvent* event) override;
    void enterEvent(QEnterEvent* event) override;
    void leaveEvent(QEvent* event) override;

    const QString& getUserId() const{
        return userId;
    }

    QCheckBox* getCheckBox(){
        return checkBox;
    }

private:
    //记录当前是否有鼠标悬停
    bool isHover = false;

    QCheckBox* checkBox;
    QPushButton* avatarBtn;
    QLabel* nameLabel;
    ChooseFriendDialog* owner; 		//记录了哪个QWidget持有了这个Item,此处的QWidget应该是一个ChooseFriendDialog

    QString userId;					//记录了当前Item对应的userId是啥
};


//////////////////////////////////////////////////
////// 选择好友的窗口
//////////////////////////////////////////////////
class ChooseFriendDialog : public QDialog
{
    Q_OBJECT
public:
    ChooseFriendDialog(QWidget* parent,const QString& userId);

    void initLeft(QHBoxLayout* layout);
    void initRight(QHBoxLayout* layout);
    void initData();

    void clickOkBtn();
    QList<QString> generateMemberList();

    void addFriend(const QString& userId,const QIcon& avatar, const QString& name, bool checked);
    void addSelectedFriend(const QString& userId,const QIcon& avatar, const QString& name);
    void deleteSelectedFriend(const QString& userId);


private:
    //保存左侧全部好友列表的QWidget
    QWidget* totalContainer;
    //保存右侧全部好友列表的QWidget
    QWidget* selectContainer;

    //当前选择窗口是点击哪个窗口来弹出的
    QString userId;

private:

};

#endif // CHOOSEFRIENDDIALOG_H
